]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
windowManager: make TouchpadWorkspaceSwitchAction respect natural-scroll
authorErik Duxstad <eduxstad@gmail.com>
Mon, 5 Nov 2018 23:13:26 +0000 (17:13 -0600)
committerFlorian Müllner <florian.muellner@gmail.com>
Tue, 13 Nov 2018 14:56:11 +0000 (14:56 +0000)
Instead of defaulting to a natural scroll behavior,
have the workspace switch action use the natural-scroll setting
in org.gnome.peripherals.touchpad to determine the correct
direction of travel when swiping. 4 finger swipes will then
match the behavior of the rest of the UI.

Reference: https://gitlab.gnome.org/GNOME/gnome-shell/issues/516

js/ui/windowManager.js

index 09270914ee263a465985adbe606c038fe88493b8..fedee72d58c722fa6604515dcfc469eecb23805d 100644 (file)
@@ -478,6 +478,7 @@ var TouchpadWorkspaceSwitchAction = new Lang.Class({
         this._dx = 0;
         this._dy = 0;
         actor.connect('captured-event', this._handleEvent.bind(this));
+       this._touchpadSettings = new Gio.Settings({schema_id: 'org.gnome.desktop.peripherals.touchpad'});
     },
 
     _checkActivated() {
@@ -515,7 +516,11 @@ var TouchpadWorkspaceSwitchAction = new Lang.Class({
 
             // Scale deltas up a bit to make it feel snappier
             this._dx += dx * 2;
-            this._dy += dy * 2;
+           if(!(this._touchpadSettings.get_boolean('natural-scroll'))) 
+               this._dy -= dy * 2;
+           else
+               this._dy += dy * 2;
+           
             this.emit('motion', this._dx, this._dy);
         } else {
             if ((event.get_gesture_phase() == Clutter.TouchpadGesturePhase.END && ! this._checkActivated()) ||